Over time, the Information Technology (IT) systems of organisations have often grown in an organic way so as to incorporate many different heterogeneous (legacy) IT components (e.g. databases, applications, servers, etc.). Many attempts have been made to integrate these heterogeneous systems into a fully integrated system.
For example, U.S. Pat. No. 7,130,812 describes a system for capturing information from multiple heterogeneous systems and storing this in a single centralised database for analysis and review by (human) users of the system.
Complex Event Processing
Complex Event Processing (CEP) systems are systems which seek to determine when a complex event has occurred based on the detected occurrence of a (typically much) larger number of simple events. There has been a large amount of research into CEP systems and sophisticated CEP engines have been developed such as that described in US 2007/0260569, in which input simple events are stored in memory such that if a rule for identifying a complex event (referred to as a situation in US 2007/0260569) is modified, it can be applied instantly even to situations which may have started occurring even before the new rule definition was known to the CEP engine.
US 2007/255529, US 2008/109824 and US 2008/189352 all describe CEP engines but none of them considers in any great depth the manner in which simple events can be harvested from a legacy system in a way which does not require significant modifications to the systems from which the events are derived and therefore none of these documents presents a solution that would be readily applicable to a typical legacy system in which great care needs to be exercised before modifying the legacy system, in particular modifying the types of inputs which legacy applications receive or the types of outputs which legacy applications need to produce.
Most previous research (including for example US 2007/0260569, US 2007/255529, US 2008/109824 and US 2008/189352) has not considered in any great detail how simple events to form the input to a CEP engine should be harvested from a system whose behaviour is to be monitored by the CEP system. In general it has simply been assumed that the system to be monitored will already produce interesting events and that these will be easy to expose to the CEP system (possibly after some pre-processing as in US 2007/0260569). However, the present inventor has determined that this is not in fact the case and that it is generally not in fact trivial to harvest useful simple events, especially from a legacy system which is still being used in a commercially critical environment.